Server Internet IIS et Delphi - John COLIBRI. |
- résumé : comment installer Internet Information Server (IIS), le tester, et l'utiliser avec Delphi : exemple de déploiement d'une Dll ISAPI
- mots clé : IIS - Internet Information Server - InetPub - répertoire
virtuel - .DLL ISAPI - WebBroker
- logiciel utilisé : Windows XP Pro, Delphi 2006
- matériel utilisé : Pentium 2.800 Mhz, 512 Meg de mémoire, 250 Giga disque dur
- champ d'application : Delphi Delphi 6 à Delphi 2009 sur Windows
- niveau : développeur Delphi
- plan :
1 - IIS : Internet Information Server
Les applications Internet que nous pouvons construire avec Delphi sont utilisables en deux mode - un mode utilisant les resources locales (Web App Debuggerà ou spécifiques à Delphi (IntraWeb StandAlone)
- un mode utilisant un véritable Serveur (IIS, Appache, Netscape)
Le déploiement des applications pour IIS nécessite à la fois l'accès à un serveur IIS et une connaissance raisonnable de son administration.
Cet article a pour but de vous présenter, pour XP professionne, avec IIS 6 - comment installer IIS
- comment utiliser IIS pour accéder aux extentions web
2 - Installation et Test IIS 2.1 - Installation du serveur IIS Si IIS a déjà été installé sur votre PC, nous pouvez sauter ce paragraphe. Pour tester si c'est le cas, voyez le paragraphe suivant.
Voici les étapes pour installer IIS sur XP Pro. | depuis la barre des tâches Windows, sélectionnez "Démarrer | Paramettres | Panneau de configuration"
| | le panneau de configuration est affiché
| |
sélectionnez "Ajout/Suppression de programmes" | | les programmes installés sont présentés
| |
sélectionnez "Ajouter ou supprimer des composants Windows" | | la liste des composants qui seront disponibles es présenté
Dans ce dialogues - les cases non cochées correspondent à des programmes non installés (par
exemple "Accessoires et utilitaires" dans le cas de notre figure)
- les cases cochées correspondent à des programmes intallés ("Internet Explorer" dans notre cas)
- les cases grisées correspondent à des programmes partiellement installés
| | recherchez "Services Internet (IIS)". Si la case est cochées, IIS est installé, et il n'y a rien d'autres à installer
Nous supposons que ce n'est pas le cas, et voici comment installer IIS: | | cliquez sur "Services Internet (IIS)" pour cocher cette CheckBox
ATTENTION: ne décochez pas les autres composants. La Listbox contiendra les composants qui, après l'installation, seront présent ou non. Si vous décochez un composant, il sera déinstallé !
| | cliquez "Suivant"
|
2.2 - Test de IIS Pour véfifier si IIS a bien été installé |
depuis la barre des tâches Windows, sélectionnez "Démarrer | Paramettres | Panneau de configuration | Outils d'administration" | |
le dialogue présentant les outils d'administration est affiché |
| sélectionnez "Services" | | la liste des services est présenteé, et nous constaons que le service correspondant à IIS est démarr
|
De plus, l'installateur a créé un répertoire INETPUB qui est le répertoire
utilisé par défaut par IIS pour stocker les pages et les scripts gérés par le serveur
2.3 - Déploiement d'une page statique
Pour déployer une page statique, appelée par exemple INDEX.HTML, il suffit de la placer dans le répertoire WWWROOT : |
ouvrez le bloc note et tapez le code d'une simple page : <HTML> <BODY>
Hello World </BODY> </HTML> | | |
sauvegardez cette page comme C:\INETPUB\WWWROOT\INDEX.HTML | |
lancez un explorateur Web (Internet Explorer dans notre cas), et, dans la combo d'adresse, tapez HTTP://LOCALHOST/INDEX.HTML | |
kle texte sera affiché : |
3 - Déploiement d'extensions Isapi ou CGI
3.1 - Déploiement d'une DLL ISAPI 3.1.1 - Les répertoires virtuels Pour qu'un utilisateur externe puisse accéder à une page générée par un ISAPI, il faut que la DLL ISAPI soit placée dans un répertoire que IIS connaît.
IIS permet de créer des "répertoires virtuels", correspondant - à un "alias", vu par l'utilisateur
- à un sous répertoire de C:\InetPub, vu côté serveur
Pour donner un exemple Il faut donc créer un répertoire virtuel
- dont l'alias est "mon_alias"
- auquel correspondra le répertoire "mon_dir"
3.1.2 - Création de notre répertoire virtuel Pour créer notre répertoire virtuel
| créez tout d'abord le répertoire physique qui correspondra au répertoire virtuel. Pour cela, utilisez l'explorateur Windows pour créer un répertoire, par exemple
C:\INETPUB\SCRIPTS\MON_REPERTOIRE | |
Puis sélectionnez l'icône "Poste de Travail" sur le bureau, puis "clic droit | gérer" |
| le dialogue de gestion de l'ordinateur est affiché |
| sélectinonez "Services et Applications | Services Internet (IIS) | Site Web | Site Web par défaut | Click droit | Nouveau | Répertoire Virtuel"
| |
l'assistant de création de répertoire virtuel est présenté |
| cliquez "Suivant" | | l'assistant demande de saisir le nom de l'alias
| | entrez votre alias, par exemple "mon_alias", puis cliquez "Suivant"
| | l'assistant demande de désigner le nom du répertoire correspondant à l'alias | | entrez votre répertoire, par exemple C:\INETPUB\SCRIPTS\MON_REPERTOIRE", puis cliquez "Suivant"
ATTENTION: le nom doit correspondre à un répertoire existant. Le plus simple est d'utiliser l'ellipse "..." pour désigner un répertoire connu | |
l'assistant demande quels sont les droits de cet alias | |
dans notre cas, nous avons coche "Exécuter" (pour un ISAPI/CGI WebBroker) | | cliquez "Suivant" puis "Finish" |
3.2 - Création de la .DLL ISAPI Pour tester notre installation, il faudra un page dynamique. Nous avons choisi de créer une extension ISAPI qui affiche un titre. Pour créer notre ISAPI, nous pouvons utiliser, par exemple, WebBroker.
3.2.1 - Création d'une .DLL Isapi WebBroker Créons une extension IIS de type ISAPI qui affiche un texte |
"File | New | Other | Delphi Projects| Web Broker | Web Server Application" |
| Delphi demande quel type d'extension IIS vous souhaitez créer |
| sélectionnez "ISAPI" et cliquez "Ok" | |
une .DLL avec une forme tWebModule est présentée |
| sauvegardez la librairie sous le nom D_MON_ISAPL.DLL | | créez une action simple par "sélection de la Form | clic droit | Action Editor" |
| le dialogue de création des actions est présenté
| | cliquez l'icône "Add new action" | |
cliquez WebAction1, et dans l'Inspecteur d'Objets, | |
créez l'événement OnAction, et tapez le code qui générera un texte .HTML. Par exemple
Procedure TWebModule1.WebModule2WebActionItem1Action(
Sender: TObject; Request: TWebRequest;
Response: TWebResponse; Var Handled: Boolean);
Begin Response.Content:=
'<HTML>' + ' <BODY>'
+ ' <H1>L''Institut Pascal</H1><BR>'
+ ' <Hello>' + ' </BODY>'
+ '</HTML>' ;
End; // WebModule2WebActionItem1Action | | |
compilez la .DLL par "project manager | d_mon_isapi.dll | clic droit | build" |
3.3 - Déploiement de la DLL Pour déplouer la .DLL
| copiez D_MON_ISAPI.DLL dans le répertoire C:\INETPUB\SCRIPTS\MON_REPERTOIRE |
3.4 - Test de l'ISAPI
Il nous suffit à présent de chercher la page dynamique en utilisant n'importe quel explorateur Web. Nous utiliserons Internet Explorer Pour afficher la page construite par notre ISAPI
| lancez Internet Explorer | | dans la combo box de l'adresse HTTP, tapez
http://localhost/mon_alias/d_mon_isapi.dll | | la page est affichée
|
3.5 - Déploiement sur un PC distant Jusqu'à présent, nous avons utilisé IIS installé sur le même PC que
l'explorateur Web. Les utilisateurs normalement accéderont à notre page depuis un autre PC. Pour installer la .DLL ISAPI sur un véritable Serveur, la technique est exactement la même que précédemment:
| créez un répertoire virtuel | | copiez la .DLL dans ce répertoire |
Côté utilisateur, c'est aussi similaire à ce que nous avons fait en local: | lancez un explorateur Web |
| tapez dans la combo de l'adresse, avec l'IP (ou le nom du domaine) suivi de l'alias et de la .DLL visée |
Quelques précautions
4 - Utilisation pour les CGI, ISAPI, Intraweb
L'article présenté est utilisable pour déployer - soit des .EXE CGI, soit des .DLL ISAPI
- pour des extensions (CGI ou ISAPI) créées
- manuellement (article CGI Forms)
- par WebBroker, comme nous l'avons démontré dans notre exemple
- par le Server Web Service (article Services Web)
- par Intraweb en mode page (article IntraWeb Tutorial sur Intraweb en mode StandAlone)
5 - Télécharger le code source Delphi Vous pouvez télécharger:
Ce .ZIP qui comprend: - le .DPR, la forme principale, les formes annexes eventuelles
- les fichiers de paramètres (le schéma et le batch de création)
- dans chaque .ZIP, toutes les librairies nécessaires à chaque projet (chaque
.ZIP est autonome)
Ces .ZIP, pour les projets en Delphi 6, contiennent des chemins RELATIFS. Par conséquent: - créez un répertoire n'importe où sur votre machine
- placez le .ZIP dans ce répertoire
- dézippez et les sous-répertoires nécessaires seront créés
- compilez et exécutez
Ces .ZIP ne modifient pas votre PC (pas de changement de la Base de Registre, de DLL ou autre). Pour supprimer le projet, effacez le répertoire.
La notation utilisée est la notation alsacienne qui consiste à préfixer les identificateurs par la zone de compilation: K_onstant, T_ype, G_lobal,
L_ocal, P_arametre, F_unction, C_lasse. Elle est présentée plus en détail dans l'article La
Notation Alsacienne
Comme d'habitude: - nous vous remercions de nous signaler toute erreur, inexactitude ou
problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections qui en résulteront pourront aider les prochains lecteurs
- tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le même sujet seront de même les bienvenus à jcolibri@jcolibri.com.
- plus simplement, vous pouvez taper (anonymement ou en fournissant votre e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en cliquant "envoyer" :
- et si vous avez apprécié cet article, faites connaître notre site, ajoutez un lien dans vos listes de liens ou citez-nous dans vos
blogs ou réponses sur les messageries. C'est très simple: plus nous aurons de visiteurs et de références Google, plus nous écrirons d'articles.
6 - L'auteur
John COLIBRI est passionné par le développement Delphi et les applications de Bases de Données. Il a écrit de nombreux livres et articles, et partage son temps entre le développement de projets (nouveaux projets, maintenance, audit, migration BDE, migration Xe_n, refactoring) pour ses clients, le
conseil (composants, architecture, test) et la
formation. Son site contient des articles
avec code source, ainsi que le programme et le calendrier des stages de formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et
UML qu'il anime personellement tous les mois, à Paris, en province ou sur site client. |